package com.xt.purchasingsystem.utils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * 编号工具类
 */
public class SerialNumberUtil {
    private static String productPrefix = "100";
    private static String materialDesignPrefix = "200";

    /**
     * 生成指定位数的随机数
     *
     * @param length
     * @return
     */
    private static String getRandom(int length) {
        String val = "";
        Random random = new Random();
        for (int i = 0; i < length; i++) {
            val += String.valueOf(random.nextInt(10));
        }
        return val;
    }

    private static String getData() {
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//设置日期格式
        return df.format(new Date());// new Date()为获取当前系统时间
    }

    /**
     * 生成产品编号的方法
     *
     * @return
     */
    public static String productSerNumber() {
        return productPrefix + getRandom(12);
    }

    /**
     * 生成物料设计单编号的方法
     *
     * @return
     */
    public static String materialDesignSerNumber() {
        return materialDesignPrefix + getData() + getRandom(4);
    }



    /**
     * 生成工序设计单编号的方法
     *
     * @return
     */
    public static String processDesignSerNumber() {
        return "201" + getData() + getRandom(4);
    }

    /**
     * 生产派工单编号的方法
     * @return
     */
    public static String orderNumber(){
        return "30500" + getData() + getRandom(6);
    }

    /**
     * 生成生产计划编号的方法
     *
     * @return
     */
    public static String productPlanSerNumber() {
        return "300" + getData() + getRandom(4);
    }

    /**
     * 生成生产编号的方法
     *
     * @return
     */
    public static String productionSerNumber() {
        return "301" + getData() + getRandom(4);
    }

    /**
     * 生成库存编号的方法
     *
     * @return
     */
    public static String repertorySerNumber() {
        return "400" + getData() + getRandom(4);
    }

    /**
     * 生成入库单编号的方法
     *
     * @return
     */
    public static String godownEntrySerNumber() {
        return "401" + getData() + getRandom(4);
    }

    /**
     * 生成出库单编号的方法
     *
     * @return
     */
    public static String outOrderSerNumber() {
        return "402" + getData() + getRandom(4);
    }

}
